<!doctype html>
<html lang="zh" class="h-100">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">

    <link rel="stylesheet" href="assets/css/bootstrap.min.css">
    <link rel="stylesheet" href="assets/css/style.css">

    <title>集群架构：物联网案例</title>
  </head>
  <body class="h-100">
  <div class="container-fluid h-100 p-2">
  	<h1>集群架构：物联网案例</h1>
  	<p>典型的物联网网络服务中，存在以下最基础的功能：</p><ol><li>设备通过TCP/UDP与服务器通讯， 通讯方式大多为GPRS/3G/4G/WIFI/以太网，连接建立后上报自身的工作数据状态</li><li>服务端通过TCP/UDP向设备发送相关指令</li><li>用户可通过手机/PC向指定设备发送指令，并查看设备状态数据。</li><li>每个设备，都有其唯一的编号，称为设备id。</li><li>每个设备，可能还有额外的加密验证信息，设备id和验证信息保存于服务器端的数据库中。</li><li>设备连接后，需要发送设备id和验证信息至服务完成验证，后续才能通讯。</li></ol><p>绝大多数物联网应用的功能，基本是这种形式。  基于beyod构建物联网应用，主要有以下流程：</p><ol><li>根据通讯协议，实现Parser,完成数据包的解析</li><li>启动一个dispatcher服务器，作为分发消息之用。</li><li>服务器端程序启动后，即向dispatcher订阅频道，频道号即为GPID。</li><li>服务端建立数据库，进行设备id,验证信息的初始录入</li><li>设备发送数据包后，验证身份，再决定是否处理。</li><li>设备验证成功之后，即应该在共享存储（数据库/缓存）中保存设备id与GPID的映射关系表， 后续我们可以通过设备id找到频道号，从而决定消息的目标频道。</li><li>设备上传的数据，应该保存在共享存储（数据库/缓存）中，其它终端可以通过设备id查询到这些信息。</li><li>向设备发送控制指令时，先通过第6步的信息，找到设备所在频道号，再发送消息即可。这样设备就可以接收到此指令消息。</li></ol>  </div>
  <script src="assets/js/jquery.min.js"></script>
  <script src="assets/js/popper.min.js"></script>
  <script src="assets/js/bootstrap.min.js"></script>

<script>
$(function(){
  var url = self.location;
  parent.$('a').removeClass('font-weight-bold');
  parent.$('a[href="260.html"]').addClass('font-weight-bold');
});
</script>  
  
  </body>
</html>